home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Events.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  9.3 KB  |  344 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Events.p
  3.  
  4.      Contains:    Event Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Events;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __EVENTS__}
  27. {$SETC __EVENTS__ := 1}
  28.  
  29. {$I+}
  30. {$SETC EventsIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __OSUTILS__}
  34. {$I OSUtils.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __QUICKDRAW__}
  37. {$I Quickdraw.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __MACTYPES__}
  40. {$I MacTypes.p}
  41. {$ENDC}
  42.  
  43. {$IFC NOT TARGET_OS_MAC }
  44. {$IFC UNDEFINED __ENDIAN__}
  45. {$I Endian.p}
  46. {$ENDC}
  47. {$ENDC}
  48.  
  49.  
  50. {$PUSH}
  51. {$ALIGN MAC68K}
  52. {$LibExport+}
  53.  
  54.  
  55. TYPE
  56.     EventKind                            = UInt16;
  57.     EventMask                            = UInt16;
  58.  
  59. CONST
  60.     nullEvent                    = 0;
  61.     mouseDown                    = 1;
  62.     mouseUp                        = 2;
  63.     keyDown                        = 3;
  64.     keyUp                        = 4;
  65.     autoKey                        = 5;
  66.     updateEvt                    = 6;
  67.     diskEvt                        = 7;
  68.     activateEvt                    = 8;
  69.     osEvt                        = 15;
  70.     kHighLevelEvent                = 23;
  71.  
  72.     mDownMask                    = $02;                            {  mouse button pressed }
  73.     mUpMask                        = $04;                            {  mouse button released }
  74.     keyDownMask                    = $08;                            {  key pressed }
  75.     keyUpMask                    = $10;                            {  key released }
  76.     autoKeyMask                    = $20;                            {  key repeatedly held down }
  77.     updateMask                    = $40;                            {  window needs updating }
  78.     diskMask                    = $80;                            {  disk inserted }
  79.     activMask                    = $0100;                        {  activate/deactivate window }
  80.     highLevelEventMask            = $0400;                        {  high-level events (includes AppleEvents) }
  81.     osMask                        = $8000;                        {  operating system events (suspend, resume) }
  82.     everyEvent                    = $FFFF;                        {  all of the above }
  83.  
  84.     charCodeMask                = $000000FF;
  85.     keyCodeMask                    = $0000FF00;
  86.     adbAddrMask                    = $00FF0000;
  87.     osEvtMessageMask            = $FF000000;
  88.  
  89.                                                                 {  OS event messages.  Event (sub)code is in the high byte of the message field. }
  90.     mouseMovedMessage            = $00FA;
  91.     suspendResumeMessage        = $0001;
  92.  
  93.     resumeFlag                    = 1;                            {  Bit 0 of message indicates resume vs suspend }
  94.     convertClipboardFlag        = 2;                            {  Bit 1 in resume message indicates clipboard change }
  95.  
  96.  
  97.  
  98. TYPE
  99.     EventModifiers                        = UInt16;
  100.  
  101. CONST
  102.                                                                 {  modifiers  }
  103.     activeFlagBit                = 0;                            {  activate? (activateEvt and mouseDown) }
  104.     btnStateBit                    = 7;                            {  state of button? }
  105.     cmdKeyBit                    = 8;                            {  command key down? }
  106.     shiftKeyBit                    = 9;                            {  shift key down? }
  107.     alphaLockBit                = 10;                            {  alpha lock down? }
  108.     optionKeyBit                = 11;                            {  option key down? }
  109.     controlKeyBit                = 12;                            {  control key down? }
  110.     rightShiftKeyBit            = 13;                            {  right shift key down? }
  111.     rightOptionKeyBit            = 14;                            {  right Option key down? }
  112.     rightControlKeyBit            = 15;                            {  right Control key down? }
  113.  
  114.     activeFlag                    = $01;
  115.     btnState                    = $80;
  116.     cmdKey                        = $0100;
  117.     shiftKey                    = $0200;
  118.     alphaLock                    = $0400;
  119.     optionKey                    = $0800;
  120.     controlKey                    = $1000;
  121.     rightShiftKey                = $2000;
  122.     rightOptionKey                = $4000;
  123.     rightControlKey                = $8000;
  124.  
  125.     kNullCharCode                = 0;
  126.     kHomeCharCode                = 1;
  127.     kEnterCharCode                = 3;
  128.     kEndCharCode                = 4;
  129.     kHelpCharCode                = 5;
  130.     kBellCharCode                = 7;
  131.     kBackspaceCharCode            = 8;
  132.     kTabCharCode                = 9;
  133.     kLineFeedCharCode            = 10;
  134.     kVerticalTabCharCode        = 11;
  135.     kPageUpCharCode                = 11;
  136.     kFormFeedCharCode            = 12;
  137.     kPageDownCharCode            = 12;
  138.     kReturnCharCode                = 13;
  139.     kFunctionKeyCharCode        = 16;
  140.     kEscapeCharCode                = 27;
  141.     kClearCharCode                = 27;
  142.     kLeftArrowCharCode            = 28;
  143.     kRightArrowCharCode            = 29;
  144.     kUpArrowCharCode            = 30;
  145.     kDownArrowCharCode            = 31;
  146.     kDeleteCharCode                = 127;
  147.     kNonBreakingSpaceCharCode    = 202;
  148.  
  149.  
  150. TYPE
  151.     EventRecordPtr = ^EventRecord;
  152.     EventRecord = RECORD
  153.         what:                    EventKind;
  154.         message:                UInt32;
  155.         when:                    UInt32;
  156.         where:                    Point;
  157.         modifiers:                EventModifiers;
  158.     END;
  159.  
  160.  
  161. {$IFC TYPED_FUNCTION_POINTERS}
  162.     FKEYProcPtr = PROCEDURE;
  163. {$ELSEC}
  164.     FKEYProcPtr = ProcPtr;
  165. {$ENDC}
  166.  
  167.     FKEYUPP = UniversalProcPtr;
  168.  
  169. CONST
  170.     uppFKEYProcInfo = $00000000;
  171.  
  172. FUNCTION NewFKEYProc(userRoutine: FKEYProcPtr): FKEYUPP;
  173.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  174.     INLINE $2E9F;
  175.     {$ENDC}
  176.  
  177. PROCEDURE CallFKEYProc(userRoutine: FKEYUPP);
  178.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  179.     INLINE $205F, $4E90;
  180.     {$ENDC}
  181. PROCEDURE GetMouse(VAR mouseLoc: Point);
  182.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  183.     INLINE $A972;
  184.     {$ENDC}
  185. FUNCTION Button: BOOLEAN;
  186.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  187.     INLINE $A974;
  188.     {$ENDC}
  189. FUNCTION StillDown: BOOLEAN;
  190.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  191.     INLINE $A973;
  192.     {$ENDC}
  193. FUNCTION WaitMouseUp: BOOLEAN;
  194.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  195.     INLINE $A977;
  196.     {$ENDC}
  197. FUNCTION TickCount: UInt32;
  198.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  199.     INLINE $A975;
  200.     {$ENDC}
  201. FUNCTION KeyTranslate(transData: UNIV Ptr; keycode: UInt16; VAR state: UInt32): UInt32;
  202.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  203.     INLINE $A9C3;
  204.     {$ENDC}
  205. FUNCTION GetCaretTime: UInt32;
  206.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  207.     INLINE $2EB8, $02F4;
  208.     {$ENDC}
  209.  
  210. TYPE
  211.     KeyMap                            = PACKED ARRAY [0..127] OF BOOLEAN;
  212.  
  213. PROCEDURE GetKeys(VAR theKeys: KeyMap);
  214.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  215.     INLINE $A976;
  216.     {$ENDC}
  217.  
  218.  
  219. { Obsolete event types & masks }
  220.  
  221. CONST
  222.     networkEvt                    = 10;
  223.     driverEvt                    = 11;
  224.     app1Evt                        = 12;
  225.     app2Evt                        = 13;
  226.     app3Evt                        = 14;
  227.     app4Evt                        = 15;
  228.     networkMask                    = $0400;
  229.     driverMask                    = $0800;
  230.     app1Mask                    = $1000;
  231.     app2Mask                    = $2000;
  232.     app3Mask                    = $4000;
  233.     app4Mask                    = $8000;
  234.  
  235.  
  236. TYPE
  237.     EvQElPtr = ^EvQEl;
  238.     EvQEl = RECORD
  239.         qLink:                    QElemPtr;
  240.         qType:                    SInt16;
  241.         evtQWhat:                EventKind;                                {  this part is identical to the EventRecord as defined above  }
  242.         evtQMessage:            UInt32;
  243.         evtQWhen:                UInt32;
  244.         evtQWhere:                Point;
  245.         evtQModifiers:            EventModifiers;
  246.     END;
  247.  
  248. {$IFC TYPED_FUNCTION_POINTERS}
  249.     GetNextEventFilterProcPtr = PROCEDURE(VAR theEvent: EventRecord; VAR result: BOOLEAN);
  250. {$ELSEC}
  251.     GetNextEventFilterProcPtr = Register68kProcPtr;
  252. {$ENDC}
  253.  
  254.     GetNextEventFilterUPP = UniversalProcPtr;
  255.  
  256. CONST
  257.     uppGetNextEventFilterProcInfo = $000000BF;
  258.  
  259. FUNCTION NewGetNextEventFilterProc(userRoutine: GetNextEventFilterProcPtr): GetNextEventFilterUPP;
  260.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  261.     INLINE $2E9F;
  262.     {$ENDC}
  263.  
  264. PROCEDURE CallGetNextEventFilterProc(VAR theEvent: EventRecord; VAR result: BOOLEAN; userRoutine: GetNextEventFilterUPP);
  265.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  266.     {To be implemented:  Glue to move parameters into registers.}
  267.     {$ENDC}
  268.  
  269. TYPE
  270.     GNEFilterUPP                        = GetNextEventFilterUPP;
  271. FUNCTION GetEvQHdr: QHdrPtr;
  272.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  273.     INLINE $2EBC, $0000, $014A;
  274.     {$ENDC}
  275. FUNCTION GetDblTime: UInt32;
  276.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  277.     INLINE $2EB8, $02F0;
  278.     {$ENDC}
  279. PROCEDURE SetEventMask(value: EventMask);
  280.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  281.     INLINE $31DF, $0144;
  282.     {$ENDC}
  283. FUNCTION PPostEvent(eventCode: EventKind; eventMsg: UInt32; VAR qEl: EvQElPtr): OSErr;
  284.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  285.     INLINE $225F, $201F, $305F, $A12F, $2288, $3E80;
  286.     {$ENDC}
  287. FUNCTION KeyTrans(transData: UNIV Ptr; keycode: UInt16; VAR state: UInt32): UInt32;
  288.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  289.     INLINE $A9C3;
  290.     {$ENDC}
  291. FUNCTION GetNextEvent(eventMask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  292.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  293.     INLINE $A970;
  294.     {$ENDC}
  295. FUNCTION WaitNextEvent(eventMask: EventMask; VAR theEvent: EventRecord; sleep: UInt32; mouseRgn: RgnHandle): BOOLEAN;
  296.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  297.     INLINE $A860;
  298.     {$ENDC}
  299. FUNCTION EventAvail(eventMask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  300.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  301.     INLINE $A971;
  302.     {$ENDC}
  303.  
  304. FUNCTION PostEvent(eventNum: EventKind; eventMsg: UInt32): OSErr;
  305.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  306.     INLINE $201F, $305F, $A02F, $3E80;
  307.     {$ENDC}
  308. FUNCTION OSEventAvail(mask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  309.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  310.     INLINE $205F, $301F, $A030, $5240, $1E80;
  311.     {$ENDC}
  312. FUNCTION GetOSEvent(mask: EventMask; VAR theEvent: EventRecord): BOOLEAN;
  313.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  314.     INLINE $205F, $301F, $A031, $5240, $1E80;
  315.     {$ENDC}
  316. PROCEDURE FlushEvents(whichMask: EventMask; stopMask: EventMask);
  317.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  318.     INLINE $201F, $A032;
  319.     {$ENDC}
  320. PROCEDURE SystemClick({CONST}VAR theEvent: EventRecord; theWindow: WindowPtr);
  321.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  322.     INLINE $A9B3;
  323.     {$ENDC}
  324. PROCEDURE SystemTask;
  325.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  326.     INLINE $A9B4;
  327.     {$ENDC}
  328. FUNCTION SystemEvent({CONST}VAR theEvent: EventRecord): BOOLEAN;
  329.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  330.     INLINE $A9B2;
  331.     {$ENDC}
  332.  
  333.  
  334. {$ALIGN RESET}
  335. {$POP}
  336.  
  337. {$SETC UsingIncludes := EventsIncludes}
  338.  
  339. {$ENDC} {__EVENTS__}
  340.  
  341. {$IFC NOT UsingIncludes}
  342.  END.
  343. {$ENDC}
  344.